home *** CD-ROM | disk | FTP | other *** search
/ Nautilus 1992 July / Nautilus-3-8 / Nautilus-3-8.bin / Tools & Utilities / Techy Stuff / Source ƒ / sky source ƒ / PDATE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-16  |  1.4 KB  |  111 lines

  1. #include "sky.h"
  2.  
  3. int    timez =    5;
  4. int    dayli =    1;
  5.  
  6. int    dmo[12]
  7. = {
  8.     0,31,59,90,120,151,181,212,243,273,304,334
  9. };
  10. double
  11. dsrc(d, ifa, i)
  12. double d;
  13. double ifa[];
  14. {
  15.     double y;
  16.  
  17.     do {
  18.         ifa[i] += 1.;
  19.         y = convdate(ifa);
  20.         ddd(d, y, ifa, '>');
  21.     } while(d >= y);
  22.     do {
  23.         ifa[i] -= 1.;
  24.         y = convdate(ifa);
  25.         ddd(d, y, ifa, '<');
  26.     } while(d < y);
  27.     return(d - y);
  28. }
  29.  
  30. ddd(d, y, ifa, ch)
  31. double d, y, ifa[];
  32. {
  33.  
  34. }
  35.  
  36. dtsetup(d, ifa)
  37. double d;
  38. double ifa[];
  39. {
  40.  
  41.     if(flags & KITCH) {
  42.         d -= timez/24.;
  43.         bdtsetup(d, ifa);
  44.         if(lastsun(ifa, 4))
  45.             return;
  46.         if(!lastsun(ifa, 10))
  47.             return;
  48.         d += 1./24.;
  49.     }
  50.     bdtsetup(d, ifa);
  51. }
  52.  
  53. lastsun(ifa, m)
  54. double ifa[];
  55. {
  56.  
  57.     if(ifa[1] < m)
  58.         return(1);
  59.     if(ifa[1] > m)
  60.         return(0);
  61.     if(ifa[2] < 24)
  62.         return(1);
  63.     return(0); /* fix up later */
  64. }
  65.  
  66. bdtsetup(d, ifa)
  67. double ifa[];
  68. double d;
  69. {
  70.     double t;
  71.  
  72.     ifa[0] = floor(1900. + d/365.2425);
  73.     ifa[1] = 1.;
  74.     ifa[2] = 1.;
  75.     ifa[3] = 0.;
  76.     ifa[4] = 0.;
  77.     ifa[1] = floor(1. + dsrc(d, ifa, 0)/30.);
  78.     ifa[2] = floor(1. + dsrc(d, ifa, 1));
  79.     dsrc(d, ifa, 2);
  80.  
  81.     d -= .5;
  82.     t = (d - floor(d))*24.;
  83.     ifa[3] = floor(t);
  84.     ifa[4] = (t-ifa[3]) * 60.;
  85. }
  86.  
  87. pdate(d)
  88. double d;
  89. {
  90.     double ifa[5];
  91.  
  92.     dtsetup(d, ifa);
  93.     printf("%.0f %.0f %.0f", ifa[0], ifa[1], ifa[2]);
  94. }
  95.  
  96. ptime(d)
  97. double d;
  98. {
  99.     double ifa[5];
  100.  
  101.     dtsetup(d, ifa);
  102.     printf("%.0f:%.2f", ifa[3], ifa[4]);
  103. }
  104.  
  105. prlat()
  106. {
  107. /*
  108.     printf("%.4f N.  %.4f W.  %.0f m. above MSL\n", nlat, wlong, elev);
  109. */
  110. }
  111.